package edu.se.jai.websocketgateway.dto;

/**
 * WebSocket消息类型枚举
 * 
 * 定义所有WebSocket通信中使用的消息类型，包括：
 * - 客户端发送给服务端的请求消息
 * - 服务端发送给客户端的响应消息
 * 
 * 消息格式：{ "type": "消息类型", "data": "消息数据" }
 */
public enum MessageType {

    // ==================== 客户端发送的消息 ====================
    CONNECT,
    CREATE,                 // 创建房间
    JOIN,                   // 加入房间
    LEAVE,                  // 离开房间
    DISSOLVE,               // 解散房间
    GUESS,                  // 猜测数字（data字段直接传递Integer类型的数字）
    START_GAME,             // 开始游戏
    STOP_GAME,              // 停止游戏

    // ==================== 服务端发送的消息 ====================
    CONNECT_RESPONSE,       // 连接响应
    ROOM_CREATE,            // 房间创建响应
    ROOM_JOIN,              // 加入房间响应
    ROOM_LEAVE,             // 离开房间响应
    ROOM_DISSOLVE,          // 房间解散响应
    ROOMS_LIST,             // 房间列表响应
    ROOM_UPDATE,            // 房间状态更新
    GAME_START,             // 游戏开始通知
    GAME_STOP,              // 游戏停止通知
    GUESS_RESULT,           // 猜测结果（个人反馈）
    ERROR                   // 错误消息
}

